
/*只能修饰常量val，不能修饰变量var
在属性第一次使用时自动初始化，且只会加载一次（毕竟常量）
by是属性委托关键字

*/
class Player5(_name:String) {
    var name = _name

    //val config by lazy {loadConfig()}

    val config = loadConfig()
    private fun loadConfig():String{
        println("loading...")
        return "xxx"
    }
}

fun main() {
    val p = Player5("Jack")
    Thread.sleep(3000)
    println(p.config)
}